
package com.cpj.signin.utils;

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.ZoneOffset;
import java.time.format.DateTimeFormatter;

public class DateUtils {

    /**
     * 获取今天的日期字符串，格式为 yyyy-MM-dd
     */
    public static String getTodayStr() {
        return LocalDate.now().format(DateTimeFormatter.ISO_LOCAL_DATE);
    }

    /**
     * 获取当前月份的第一天日期字符串，格式为 yyyy-MM-dd
     */
    public static String getFirstDayOfMonthStr() {
        return LocalDate.now().withDayOfMonth(1).format(DateTimeFormatter.ISO_LOCAL_DATE);
    }

    /**
     * 获取当前月份的天数
     */
    public static int getDaysInMonth() {
        return LocalDate.now().lengthOfMonth();
    }

    /**
     * 获取当前日期是本月的第几天
     */
    public static int getDayOfMonth() {
        return LocalDate.now().getDayOfMonth();
    }

    /**
     * 获取指定日期是本月的第几天
     */
    public static int getDayOfMonth(LocalDate date) {
        return date.getDayOfMonth();
    }

    /**
     * 将日期字符串转换为LocalDate
     */
    public static LocalDate parseDate(String dateStr) {
        return LocalDate.parse(dateStr, DateTimeFormatter.ISO_LOCAL_DATE);
    }

    /**
     * 获取当前时间戳（秒）
     */
    public static long getCurrentTimestamp() {
        return LocalDateTime.now().toEpochSecond(ZoneOffset.UTC);
    }
}
